/**
 * 设置token
 * @param {string} token - token字符串
 */
export function setToken(token) {
  localStorage.setItem('token', token)
}

/**
 * 获取token
 * @returns {string} token字符串
 */
export function getToken() {
  return localStorage.getItem('token')
}

/**
 * 移除token
 */
export function removeToken() {
  localStorage.removeItem('token')
}

/**
 * 解析token中的用户信息
 * @param {string} token - token字符串
 * @returns {Object} 解析后的用户信息
 */
export function parseToken(token) {
  if (!token) return null

  try {
    const base64Url = token.split('.')[1]
    const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/')
    const jsonPayload = decodeURIComponent(atob(base64).split('').map(c => {
      return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)
    }).join(''))

    return JSON.parse(jsonPayload)
  } catch (error) {
    console.error('Token解析失败:', error)
    return null
  }
}

/**
 * 获取当前用户名
 * @returns {string} 用户名
 */
export function getCurrentUsername() {
  const token = getToken()
  const userInfo = parseToken(token)
  return userInfo?.username || ''
}

/**
 * 检查是否已登录
 * @returns {boolean} 是否已登录
 */
export function isLoggedIn() {
  const token = getToken()
  if (!token) return false

  try {
    const tokenInfo = parseToken(token)
    if (!tokenInfo) return false

    // 检查token是否过期
    const now = Math.floor(Date.now() / 1000)
    return tokenInfo.exp > now
  } catch (error) {
    return false
  }
} 